﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Linq.Mapping;
using System.Data.Linq;

namespace VemTransporte.Models.Basica
{
    [Table(Name="Endereco")]
    public class Endereco
    {
        #region ATRIBUTOS
        private int id = 0;
        private string cep;
        private string logradouro;
        private int _BairroID;
        private EntityRef<Bairro> _bairro;
        private EntitySet<Usuario> _usuarios;
        private EntitySet<Empresa> _empresas;
        #endregion

        #region PROPRIEDADES
        [Column(Name = "PK_IdEndereco", Storage="id", IsDbGenerated=true, IsPrimaryKey=true, AutoSync=AutoSync.OnInsert)]
        public int Id
        {
            get { return id; }
        }

        [Column(Name="FK_IdBairro")]
        public int BairroID
        {
            get { return _BairroID; }
            set { _BairroID = value; }
        }

        [Association(ThisKey = "BairroID", Storage = "_bairro", IsForeignKey=true)]
        public Bairro Bairro
        {
            get { return _bairro.Entity; }
            set { _bairro.Entity = value; }
        }

        [Column(Name = "END_Cep")]
        public string Cep
        {
            get { return cep; }
            set { cep = value; }
        }

        [Column(Name = "END_Logradouro")]
        public string Logradouro
        {
            get { return logradouro; }
            set { logradouro = value; }
        }

        [Association(ThisKey="Id", OtherKey="IdEndereco", Storage="_usuarios")]
        public EntitySet<Usuario> Usuarios
        {
            get { return this._usuarios; }
            set { this._usuarios.Assign(value); }
        }

        [Association(OtherKey="IdEndereco", Storage="_empresas")]
        public EntitySet<Empresa> Empresas
        {
            get { return _empresas; }
            set { _empresas.Assign(value); }
        }
        #endregion

        #region CONSTRUTOR
        public Endereco() 
        { 
            this._bairro = new EntityRef<Bairro>();
            this._usuarios = new EntitySet<Usuario>();
            this._empresas = new EntitySet<Empresa>();
        }

        #endregion
    }
}